package com.leetcode.demo;

/**
 * @author wangxiyuan
 * @description 给你一个字符串 s，由若干单词组成，单词前后用一些空格字符隔开。返回字符串中最后一个单词的长度。
 *
 * 单词 是指仅由字母组成、不包含任何空格字符的最大子字符串。
 *
 * 输入：s = "Hello World"
 * 输出：5
 *
 * 输入：s = "   fly me   to   the moon  "
 * 输出：4
 * @createDate 2021/8/27 15:18
 **/
public class Question58 {
    public static int lengthOfLastWord(String s) {
        String[] words = s.split("\\s+");
        return words[words.length - 1].length();
    }

    /**
     * 从右向左遍历，从第一个不是空格的字符开始计数，一旦开始计数，再遇到空格就结束了
     * @param s
     * @return
     */
    public static int lengthOfLastWord2(String s) {
        if(s == null || s.length() == 0) return 0;
        int count = 0;
        for(int i = s.length()-1; i >= 0; i--){
            if(s.charAt(i) == ' '){
                if(count == 0) continue;
                break;
            }
            count++;
        }
        return count;
    }

    public static void main(String[] args) {
        System.out.println(lengthOfLastWord("   fly me   to   the moon  "));
    }
}
